package com.comleader.operator.common.util;

import java.lang.reflect.Field;
import java.util.List;

import com.alibaba.excel.annotation.ExcelIgnore;

import cn.hutool.core.util.ReflectUtil;

/**
 * @Dscription
 * @Author 连新景
 * @Date 2024/07/26 14:43
 */
public class OperatorObjectUtil {

    /**
     * @Description 使用反射把数据赋值到对象属性中
     * @Auhtor 连新景
     * @Date 2024/07/26 14:44
     * @param list
     * @param clazz
     * @return T
     */
    public static <T> T createObj(List<String> list, Class<T> clazz) {
        Field[] fields = ReflectUtil.getFields(clazz, field -> field.getAnnotation(ExcelIgnore.class) == null);
        T t = ReflectUtil.newInstance(clazz);
        for (int i = 0; i < fields.length; i++) {
            ReflectUtil.setFieldValue(t, fields[i], "null".equals(list.get(i)) ? null : list.get(i));
        }
        return t;
    }
}
